home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / pc_board / pcbss30.zip / SSREF.DOC < prev   
Text File  |  1992-11-22  |  83KB  |  2,273 lines

  1.  
  2. Command Reference by Subject
  3. ─────────────────────────────────────────────────────────────────────────────
  4.  
  5. Caller Data Modification
  6.   ADJTIME       <option> <minutes>
  7.   DECREASE      <dec> <min>
  8.   GETCINFO      <conf> <flag> <var>
  9.   INCREASE      <inc> <max>
  10.   SEC_TABLE
  11.   SEC_LOOKUP    <file>
  12.   SETCINFO      <conf> <flag> <state>
  13.   UPDATE_USER_RECORD
  14.  
  15. Math Funtions
  16.   ADD <var> <val1> <val2>
  17.   SUB <var> <val1> <val2>
  18.   MUL <var> <val1> <val2>
  19.   DIV <var> <val1> <val2>
  20.   INC <var>
  21.   DEC <var>
  22.  
  23. Data File Funtions
  24.   CLOSE  <hdl>
  25.   CREATE <hdl> <format> <file>
  26.   FORMAT <fname> <key flds...>
  27.   OPEN   <hdl> <file>
  28.   READP  <hdl> <format>
  29.   READN  <hdl> <format>
  30.   READL  <hdl> <format>
  31.   READF  <hdl> <format>
  32.   READ   <hdl> <format> [key]
  33.   WRITE  <hdl> <format>
  34.  
  35. Data Entry Funtions
  36.   ACCEPT        <row> <col> <prompt> <var>
  37.   AUTOENTER
  38.   BEEPS         <ON/OFF>
  39.   ESC_TO        <label>
  40.   ESC_CHK       <ON/OFF>
  41.   GETMSG        <format> <srow> <scol> <rows> <cols>
  42.   FIELDS        <name>  <type> <len> <prec> <min> <mask> <default>
  43.   FLUSH_KB
  44.   FORCE_ENTER
  45.   NULL_ENTRY    <label>
  46.   PROMPT        <prompt> <var>
  47.   SETMASK       <var> <mask>
  48.  
  49. Date/Time Funtions
  50.   CURDATE   <type> <sep> <var>
  51.   CURTIME   <type> <var>
  52.   DATEADD   <date> <days> <var>
  53.   DATEADDM  <date> <months> <var>
  54.   DATEDIF   <date1> <date2> <var>
  55.   DATESUB   <date> <days> <var>
  56.   DATESUBM  <date> <months> <var>
  57.  
  58. Display Funtions
  59.   DISPLAY       <row> <col> <..data..>
  60.   DISPLAYC      <row> <..data..>
  61.   DISPLAY_FILE  <file>
  62.   GOTORC        <row> <col>
  63.   INDENT        <cols>
  64.   REPEAT        <row> <col> <char> <cnt>
  65.   TEXT          <..data..>
  66.  
  67. Display Control Funtions
  68.   CLEARCRT
  69.   CLEARLINES        <row1> <row2>
  70.   COLOR             [BRIGHT] <fcolor> [BLINK] <bcolor>
  71.   ENTRY_MIN_CHAR    <char>
  72.   ENTRY_MIN_ATTR    [BRIGHT] <fcolor> [BLINK] <bcolor>
  73.   ENTRY_MAX_CHAR    <char>
  74.   ENTRY_MAX_ATTR    [BRIGHT] <fcolor> [BLINK] <bcolor>
  75.   ENTRY_ANS_ATTR    [BRIGHT] <fcolor> [BLINK] <bcolor>
  76.   NEWLINE           <count>
  77.  
  78. String Funtions
  79.   RANDOM_STR    <count> <var>
  80.   SET           <var> <val>
  81.   TRIMR         <var> [<var>...<var>]
  82.   TRIML         <var> [<var>...<var>]
  83.   TRIM          <var> [<var>...<var>]
  84.   LCASE         <var> [<var>...<var>]
  85.   UCASE         <var> [<var>...<var>]
  86.   PARSE         <string>
  87.   GETWORD       <var>
  88.   SUBSTR        <var> <start> <len> <result_var>
  89.  
  90. Script Flow Control Funtions
  91.   IF/ELSE/ENDIF
  92.   SWITCH/CASE/DCASE/BREAK
  93.   GOTO  <label>
  94.   GOSUB <label>
  95.   RETURN
  96.   EXIT  <ALL>
  97.   CALL  <script> <label>
  98.   RUN   <script> <label>
  99.  
  100. Script Control Funtions
  101.   DELAY             <x>
  102.   DOS               <cmd>
  103.   ESET              <evar> <val>
  104.   FREECORE
  105.   GOODBYE
  106.   HANGUP
  107.   INCLUDE           <file>
  108.   LOG_MSG           <msg>
  109.   LOG_DATA          <file>
  110.   MSG
  111.   SRCHTXTFILE       <srchtxt> <file>
  112.   SHELL             <prg> <parms>
  113.   VALIDCREDITCARD   <card#> <var>
  114.  
  115. CallBack Funtions
  116.   CALLBACK      <lmt> <mdm_cmd>
  117.   PARSEPHONE    <phone#> <area> <exchg> <number>
  118.   SENDMODEM     <lmt> <cmnd>
  119.  
  120. Command Reference
  121. ─────────────────────────────────────────────────────────────────────────────
  122.  
  123.   --------------------------------------------------------------------------
  124.   ACCEPT <row> <col> <prompt> <var>
  125.   --------------------------------------------------------------------------
  126.  
  127.        Desc:  Get keyboard input from caller, at a specific row and column.
  128.  
  129.       Parms:  row       Row to start display of "prompt". 1 based.
  130.               col       Column to start display of "prompt". 1 based.
  131.               prompt    Prompt string to display.
  132.               var       Variable to store the user input.
  133.  
  134.       Notes:  When the caller is in non-graphics mode and the script uses an
  135.               ACCEPT command, it will be internally converted to a PROMPT
  136.               command. Any row/col information is ignored and the resulting
  137.               display may not be what you expect. You should experiment with
  138.               this feature in both graphics modes to verify that your
  139.               scripts operate as expected.
  140.  
  141.     Example:  ACCEPT 22 1 "Enter Option " Op
  142.  
  143.  
  144.   --------------------------------------------------------------------------
  145.   ADD <var> <val1> <val2>
  146.   --------------------------------------------------------------------------
  147.  
  148.        Desc:  Add "val1" and "val2", then store the result in variable
  149.               "var".
  150.  
  151.       Parms:  var       Variable to store result in.
  152.               val1      First value to add
  153.               val2      Second value to add
  154.  
  155.       Notes:  The result is treated as a 10.2 float value.
  156.  
  157.     Example:  ADD Tot Price Tax   ;Tot = Price + Tax
  158.               ADD Tot Price 3     ;Tot = Price + 3
  159.  
  160.  
  161.   --------------------------------------------------------------------------
  162.   ADJTIME <option> <minutes>
  163.   --------------------------------------------------------------------------
  164.  
  165.        Desc:  Modify the amount of online time for the caller.
  166.  
  167.       Parms:  option    'ADD' to add time, 'SUB' to subtract it.
  168.               minutes   The number of minutes to add/subtract.
  169.  
  170.       Notes:  none
  171.  
  172.     Example:  ADJTIME ADD 15      ;add 15 minutes to callers online time.
  173.  
  174.  
  175.   --------------------------------------------------------------------------
  176.   ENTRY_ANS_ATTR [BRIGHT] <fcolor> [BLINK] <bcolor>
  177.   --------------------------------------------------------------------------
  178.  
  179.        Desc:  Defines the color of the user entered data in PROMPT and
  180.               ACCEPT commands.
  181.  
  182.       Parms:  BRIGHT    Optional modifier to cause the foreground color to
  183.                         display as bright.
  184.               fcolor    The foreground color to use.
  185.               BLINK     Optional modifier to cause the display to blink.
  186.               bcolor    The background color to use.
  187.  
  188.       Notes:  This command may only be used if the caller in is graphics
  189.               mode. Valid colors are: BLACK, RED, GREEN, YELLOW, BLUE,
  190.               MAGENTA, CYAN and WHITE.
  191.  
  192.     Example:  ENTRY_ANS_ATTR  BRIGHT WHITE BLACK
  193.  
  194.  
  195.   --------------------------------------------------------------------------
  196.   AUTOENTER <ON/OFF>
  197.   --------------------------------------------------------------------------
  198.  
  199.        Desc:  Cause PCBSuperScript to simulate a press of the <ENTER> key
  200.               when the caller reaches the end of the current entry field.
  201.               This command can be used with a 1 character field to provide
  202.               "hot-key" fields.
  203.  
  204.       Parms:  ON        Turn AUTOENTER mode on.
  205.               OFF       Turn AUTOENTER mode off.
  206.  
  207.       Notes:  none
  208.  
  209.     Example:  AUTOENTER
  210.  
  211.  
  212.   --------------------------------------------------------------------------
  213.   BEEPS <ON/OFF>
  214.   --------------------------------------------------------------------------
  215.  
  216.        Desc:  When the caller has exhausted the entry space of a field, or
  217.               entered invalid data for the field, PCBSuperScript emits a
  218.               "beep" to the caller. By default BEEPS is ON.
  219.  
  220.       Parms:  ON        Turn beeps on (default).
  221.               OFF       Turn beeps off
  222.  
  223.       Notes:  None.
  224.  
  225.     Example:  BEEPS ON                    ;turn beeps on
  226.  
  227.  
  228.   --------------------------------------------------------------------------
  229.   CALL <script> <label>
  230.   --------------------------------------------------------------------------
  231.  
  232.        Desc:  Execute another script. The script that is run will return
  233.               control to the caller on exit.
  234.  
  235.       Parms:  script    The name of the script to run.
  236.               label     Optional label to start execution at.
  237.  
  238.       Notes:  none
  239.  
  240.     Example:  CALL "menu.def" StartUp
  241.  
  242.  
  243.   --------------------------------------------------------------------------
  244.   CALLBACK <lmt> <mdm_cmd>
  245.   --------------------------------------------------------------------------
  246.  
  247.        Desc:  Enter callback sequence.
  248.  
  249.       Parms:  lmt       Time limit in seconds
  250.               mdm_cmd   Modem command. You must also include "ATDT" in the
  251.                         command.
  252.  
  253.       Notes:  none
  254.  
  255.     Example:  set mcmd "ATDT" Num2Call
  256.               callback  5 mcmd
  257.  
  258.  
  259.   --------------------------------------------------------------------------
  260.   CLEARCRT
  261.   --------------------------------------------------------------------------
  262.  
  263.        Desc:  Clears the screen.
  264.  
  265.       Parms:  None.
  266.  
  267.       Notes:  This command may only be used if the caller in is graphics
  268.               mode.
  269.  
  270.     Example:  CLEARCRT
  271.  
  272.  
  273.   --------------------------------------------------------------------------
  274.   CLEARLINES <row1> <row2>
  275.   --------------------------------------------------------------------------
  276.  
  277.        Desc:  Clear a specified block of rows on the screen.
  278.  
  279.       Parms:  row1      First row to clear
  280.               row2      Last row to clear
  281.  
  282.       Notes:  This command may only be used if the caller in is graphics
  283.               mode.
  284.  
  285.     Example:  CLEARLINES 5 17      ;clear lines 5 - 17
  286.  
  287.  
  288.   --------------------------------------------------------------------------
  289.   CLOSE <hdl>
  290.   --------------------------------------------------------------------------
  291.  
  292.        Desc:  CLOSE the specified 'hdl' and flushes data buffers associated
  293.               with it.
  294.  
  295.       Parms:  hdl       File handle to use. Valid range is 0 to 9.
  296.  
  297.       Notes:  A HDL that has not been opened may safely be closed.
  298.  
  299.               The macro "@file_stat@" contains the result of the last data
  300.               file operation performed by PCBSuperScript. All data file
  301.               functions load this macro with "*OK*" if no error occurred.
  302.               This macro should be checked after a data file function to
  303.               insure proper script operation. See ORDER.DEF for examples of
  304.               these commands.
  305.  
  306.     Example:  OPEN  0 J:\PCB\SS\DATA.DAT
  307.               READ  0 DatFmt
  308.               CLOSE 0
  309.  
  310.  
  311.   --------------------------------------------------------------------------
  312.   COLOR [BRIGHT] <fcolor> [BLINK] <bcolor>
  313.   --------------------------------------------------------------------------
  314.  
  315.        Desc:  Sets the display color.
  316.  
  317.       Parms:  BRIGHT    Optional modifier to cause the foreground color to
  318.                         display as bright.
  319.               fcolor    The foreground color to use.
  320.               BLINK     Optional modifier to cause the display to blink.
  321.               bcolor    The background color to use.
  322.  
  323.       Notes:  This command may only be used if the caller in is graphics
  324.               mode. Valid colors are: BLACK, RED, GREEN, YELLOW, BLUE,
  325.               MAGENTA, CYAN and WHITE.
  326.  
  327.     Example:  COLOR  BRIGHT CYAN BLACK
  328.  
  329.  
  330.   --------------------------------------------------------------------------
  331.   CREATE  <hdl> <format> <file>
  332.   --------------------------------------------------------------------------
  333.  
  334.        Desc:  Create a dBase file
  335.  
  336.       Parms:  hdl       File handle to use. Valid range is 0 to 9.
  337.               format    The name of the FORMAT for this file.
  338.               file      The name of the file.
  339.  
  340.       Notes:  The file will be open on return.
  341.  
  342.               The macro "@file_stat@" contains the result of the last data
  343.               file operation performed by PCBSuperScript. All data file
  344.               functions load this macro with "*OK*" if no error occurred.
  345.               This macro should be checked after a data file function to
  346.               insure proper script operation. See ORDER.DEF for examples of
  347.               these commands.
  348.  
  349.     Example:  close 1                                     ;close file
  350.               open  1 @ss_path@ sscfig                    ;open cfig file
  351.               if @file_stat@ != "*OK*"                    ;chk for err
  352.                 create 1 SysInfo @ss_path@ sscfig         ;create file
  353.                 if @file_stat@ != "*OK*"                  ;chk for err
  354.                   text  "Cannot create SSCFIG file."      ;
  355.                   force_enter                             ;
  356.                   exit all                                ;
  357.                 endif                                     ;
  358.                 write 1 SysInfo                           ;
  359.               endif                                       ;
  360.  
  361.  
  362.   --------------------------------------------------------------------------
  363.   CURDATE <type> <sep> <var>
  364.   --------------------------------------------------------------------------
  365.  
  366.        Desc:  Return the current date in the specified format.
  367.  
  368.       Parms:  type      0   Tuesday  March 14, 1992
  369.                         1   Tue  March 14, 1992
  370.                         2   March 14, 1992
  371.                         3   14 Mar 92
  372.                         4   m-d-yy
  373.                         5   mm-dd-yy
  374.                         6   d-m-yy
  375.                         7   dd-mm-yy
  376.                         8   yy-m-d
  377.                         9   yy-mm-dd
  378.                        10   m-d-yyyy
  379.                        11   mm-dd-yyyy
  380.                        12   mmddyy
  381.                        13   yymmdd
  382.  
  383.               sep       The seperator character used in types 4-11.
  384.  
  385.               var       The name of the variable to store the date in.
  386.  
  387.       Notes:  none
  388.  
  389.     Example:  CURDATE 1  '/' xdate    ;xdate = "Tue  March 14, 1992"
  390.               CURDATE 4  '/' xdate    ;xdate = "3/14/92"
  391.               CURDATE 11 '-' xdate    ;xdate = "03-14-1992"
  392.  
  393.  
  394.   --------------------------------------------------------------------------
  395.   CURTIME <type> <var>
  396.   --------------------------------------------------------------------------
  397.  
  398.        Desc:  Return the current time in the specified format.
  399.  
  400.       Parms:  type      0   05:58:48.26
  401.                         1   05:58:48
  402.                         2   5:58 AM
  403.                         3   5:58a
  404.                         4   5:58
  405.                         5   05:58
  406.  
  407.               var       The name of the variable to store the time in.
  408.  
  409.       Notes:  none
  410.  
  411.     Example:  CURTIME 1 xtime         ;xtime = "05:58:48"
  412.               CURTIME 3 xtime         ;xtime = "5:58a"
  413.               CURTIME 4 xtime         ;xtime = "5:58"
  414.  
  415.  
  416.   --------------------------------------------------------------------------
  417.   DATEADD <date> <days> <var>
  418.   --------------------------------------------------------------------------
  419.  
  420.        Desc:  Add a specified number of days to a date.
  421.  
  422.       Parms:  date      The date to add to.
  423.               days      The number of days to add
  424.               var       The name of the variable to store the date in.
  425.  
  426.       Notes:  The date must be in MM-DD-YY format. The seperator character
  427.               may be any of your choice.
  428.  
  429.     Example:  CURDATE 5  '/' xdate      ;xdate = "03/14/92"
  430.               DATEADD xdate 30 xdate    ;xdate = xdate + 30 days
  431.  
  432.  
  433.   --------------------------------------------------------------------------
  434.   DATEADDM <date> <months> <var>
  435.   --------------------------------------------------------------------------
  436.  
  437.        Desc:  Add a specified number of months to a date.
  438.  
  439.       Parms:  date      The date to add to.
  440.               months    The number of months to add
  441.               var       The name of the variable to store the date in.
  442.  
  443.       Notes:  The date must be in MM-DD-YY format. The seperator character
  444.               may be any of your choice. The resulting date is validated for
  445.               a correct day value. If the day is greater than allowed for a
  446.               given month, the day value is adjusted to the last day in the
  447.               month. See example #3 below.
  448.  
  449.     Example:  CURDATE 5  '/' xdate      ;xdate = "03/14/92"
  450.               DATEADDM xdate 1 xdate    ;xdate = "04/14/92"
  451.  
  452.               CURDATE 5  '/' xdate      ;xdate = "12/14/91"
  453.               DATEADDM xdate 1 xdate    ;xdate = "01/14/92"
  454.  
  455.               CURDATE 5  '/' xdate      ;xdate = "08/30/92"
  456.               DATEADDM xdate 6 xdate    ;xdate = "02/28/93" <-- note day
  457.  
  458.  
  459.   --------------------------------------------------------------------------
  460.   DATEDIF <date1> <date2> <var>
  461.   --------------------------------------------------------------------------
  462.  
  463.        Desc:  Calculate the number of days between two dates.
  464.  
  465.       Parms:  date1     Date string 1.
  466.               date2     Date string 2.
  467.               var       The name of the variable to store the date in.
  468.  
  469.       Notes:  The date must be in MM-DD-YY format. The seperator character
  470.               may be any of your choice.
  471.  
  472.     Example:  DATEDIF xdate1 xdate2 xdif    ;xdif = xdate1 - xdate2
  473.  
  474.  
  475.   --------------------------------------------------------------------------
  476.   DATESUB <date> <days> <var>
  477.   --------------------------------------------------------------------------
  478.  
  479.        Desc:  Subtract a specified number of days from a date.
  480.  
  481.       Parms:  date      The date to subtract from.
  482.               days      The number of days to subtract.
  483.               var       The name of the variable to store the date in.
  484.  
  485.       Notes:  The date must be in MM-DD-YY format. The seperator character
  486.               may be any of your choice.
  487.  
  488.     Example:  CURDATE 5  '/' xdate      ;xdate = "03/14/92"
  489.               DATESUB xdate 30 xdate    ;xdate = xdate - 30 days
  490.  
  491.  
  492.   --------------------------------------------------------------------------
  493.   DATESUBM <date> <months> <var>
  494.   --------------------------------------------------------------------------
  495.  
  496.        Desc:  Subtract a specified number of months from a date.
  497.  
  498.       Parms:  date      The date to subtract from.
  499.               months    The number of months to subtract.
  500.               var       The name of the variable to store the date in.
  501.  
  502.       Notes:  The date must be in MM-DD-YY format. The seperator character
  503.               may be any of your choice. The resulting date is validated for
  504.               a correct day value. If the day is greater than allowed for a
  505.               given month, the day value is adjusted to the last day in the
  506.               month. See example #3 below.
  507.  
  508.     Example:  CURDATE 5  '/' xdate      ;xdate = "03/14/92"
  509.               DATESUBM xdate 1 xdate    ;xdate = "02/14/92"
  510.  
  511.               CURDATE 5  '/' xdate      ;xdate = "01/14/92"
  512.               DATESUBM xdate 1 xdate    ;xdate = "12/14/91"
  513.  
  514.               CURDATE 5  '/' xdate      ;xdate = "03/31/92"
  515.               DATESUBM xdate 1 xdate    ;xdate = "02/29/92" <-- note day
  516.  
  517.  
  518.   --------------------------------------------------------------------------
  519.   DECREASE <dec> <min>
  520.   --------------------------------------------------------------------------
  521.  
  522.        Desc:  Decrease caller security level by 'dec', but do not allow to
  523.               be less than 'min'.
  524.  
  525.       Parms:  dec       Decrement amount.
  526.               min       Minimum allowed value of security level
  527.  
  528.       Notes:  A modified security level is not written back to the user file
  529.               until the UPDATE_USER_RECORD command is executed.
  530.  
  531.     Example:  DECREASE 1 10
  532.  
  533.  
  534.   --------------------------------------------------------------------------
  535.   DEC <var>
  536.   --------------------------------------------------------------------------
  537.  
  538.        Desc:  Decrement the specified variable by 1.
  539.  
  540.       Parms:  var       The variable to decrement.
  541.  
  542.       Notes:  none
  543.  
  544.     Example:  DEC Row              ;Counter = Counter - 1
  545.  
  546.  
  547.   --------------------------------------------------------------------------
  548.   DELAY <x>
  549.   --------------------------------------------------------------------------
  550.  
  551.        Desc:  Pause script execution for "x" seconds.
  552.  
  553.       Parms:  x         The number of seconds to pause.
  554.  
  555.       Notes:  none
  556.  
  557.     Example:  DELAY 5              ;pause script for 5 seconds
  558.  
  559.  
  560.   --------------------------------------------------------------------------
  561.   DISPLAY <row> <col> <..data..>
  562.   --------------------------------------------------------------------------
  563.  
  564.        Desc:  Display the specified data at a specified row and column.
  565.  
  566.       Parms:  row       Row to start display of "..data..". 1 based.
  567.               col       Column to start display of "..data". 1 based.
  568.               ..data..  The data to display.
  569.  
  570.       Notes:  This command may only be used if the caller in is graphics
  571.               mode.
  572.  
  573.     Example:  DISPLAY 5 15 "This is your name: " @user@
  574.  
  575.  
  576.   --------------------------------------------------------------------------
  577.   DISPLAYC <row> <..data..>
  578.   --------------------------------------------------------------------------
  579.  
  580.        Desc:  Display the specified data centered on a specified row.
  581.  
  582.       Parms:  row       Row to start display of "..data..". 1 based.
  583.               ..data..  The data to display.
  584.  
  585.       Notes:  This command may only be used if the caller in is graphics
  586.               mode.
  587.  
  588.     Example:  DISPLAYC 5 "This is some centered data"
  589.  
  590.  
  591.   --------------------------------------------------------------------------
  592.   DISPLAY_FILE <file>
  593.   --------------------------------------------------------------------------
  594.  
  595.        Desc:  Display the contents of a file to the screen.
  596.  
  597.       Parms:  file      The file name to display.
  598.  
  599.       Notes:  none.
  600.  
  601.     Example:  DISPLAY_FILE J:\PCB\SS\NEWCALL.MSG
  602.  
  603.  
  604.   --------------------------------------------------------------------------
  605.   DIV <var> <val1> <val2>
  606.   --------------------------------------------------------------------------
  607.  
  608.        Desc:  Divide "val1" by "val2", then store the result in variable
  609.               "result_var".
  610.  
  611.       Parms:  var       Variable to store result in.
  612.               val1      Dividend
  613.               val2      Divisor
  614.  
  615.       Notes:  The result is treated as a 10.2 float value.
  616.  
  617.     Example:  DIV Temp Tot / Qty  ;Temp = Tot / Qty
  618.               DIV Tot Price 3     ;Tot = Price / 3
  619.  
  620.  
  621.   --------------------------------------------------------------------------
  622.   DOS <cmd>
  623.   --------------------------------------------------------------------------
  624.  
  625.        Desc:  Perform a DOS command.
  626.  
  627.       Parms:  cmd       The command to perform.
  628.  
  629.       Notes:  none
  630.  
  631.     Example:  DOS "del *.bak"
  632.  
  633.  
  634.   --------------------------------------------------------------------------
  635.   ESC_CHK <ON/OFF>
  636.   --------------------------------------------------------------------------
  637.  
  638.        Desc:  Turn escape checking on or off during input.
  639.  
  640.       Parms:  ON        Turn escape checking on.
  641.               OFF       Turn escape checking off.
  642.  
  643.       Notes:  none
  644.  
  645.     Example:  ESC_CHK   ON                       ;turn escape checking on
  646.               PROMPT "            Name: " Name   ;get name from caller
  647.               IF @esc_pressed@ == 1              ;chk for esc press
  648.                 GOTO AbortJob                    ; abort script if pressed
  649.               ENDIF                              ;
  650.  
  651.  
  652.   --------------------------------------------------------------------------
  653.   ESC_TO <label>
  654.   --------------------------------------------------------------------------
  655.  
  656.        Desc:  Set escape processing mode for PROMPT and ACCEPT commands.
  657.  
  658.       Parms:  label     The label to branch to if ESC is pressed during a
  659.                         PROMPT or ACCEPT command.
  660.  
  661.       Notes:  none
  662.  
  663.     Example:  :AddRec
  664.                 ESC_CHK   ON                  ;turn escape checking on
  665.                 ESC_TO    AddRec99            ;set ESC_TO label
  666.                 PROMPT    "Name: " Name       ;get name from caller
  667.                 .....
  668.                 .....
  669.               :AddRec99                       ;exit label
  670.                 ESC_TO                        ;reset ESC_TO label
  671.                 ESC_CHK   OFF                 ;turn escape checking on
  672.                 RETURN                        ;return to caller
  673.  
  674.  
  675.   --------------------------------------------------------------------------
  676.   ESET <evar> <val>
  677.   --------------------------------------------------------------------------
  678.  
  679.        Desc:  Set's the environment variable "evar" to "val".
  680.  
  681.       Parms:  evar      The name of the environment variable to set.
  682.  
  683.       Notes:  none
  684.  
  685.     Example:  ESET DSZLOG "J:\PCB\DSZLOG" @node@ ".LOG"
  686.  
  687.  
  688.   --------------------------------------------------------------------------
  689.   EXIT <ALL>
  690.   --------------------------------------------------------------------------
  691.  
  692.        Desc:  Exit PCBSuperScript.
  693.  
  694.       Parms:  ALL       Optional. Exit all scripts from all levels.
  695.  
  696.       Notes:  If the current script has been CALLed from another script,
  697.               control will be return to the caller.
  698.  
  699.     Example:  EXIT
  700.  
  701.  
  702.   --------------------------------------------------------------------------
  703.   FIELDS
  704.     <name>  <type> <len> <prec> <min> <mask> <default>
  705.     .......
  706.     .......
  707.     <name>  <type> <len> <prec> <min> <mask> <default>
  708.   FIELDS
  709.   --------------------------------------------------------------------------
  710.  
  711.        Desc:  Defines variables to be used in the script.
  712.  
  713.       Parms:  name      The name of the variable. 1 to 20 char's. Case *is*
  714.                         significant. If the variable name is already
  715.                         defined, this definition will be ignored (but no
  716.                         eror will occur).
  717.  
  718.               type      The type of the field.
  719.                         'C'   Character field.
  720.                         'N'   Numeric field.
  721.  
  722.               len       The length of this variable. For 'C' type fields,
  723.                         this should be the TOTAL length of the field,
  724.                         including any mask characters, etc. If the field is
  725.                         type 'N', this represents the number of digits to
  726.                         the left of the decimal point.
  727.  
  728.               prec      The precision of this variable. If the field type is
  729.                         'C', the precision is forced to 0. For 'N' type
  730.                         fields, this represents the number of digits to the
  731.                         right of the decimal point.
  732.  
  733.               min       The minimum entry length of this variable (in an
  734.                         ACCEPT or PROMPT command).
  735.  
  736.               mask      The entry mask. The "mask" field provides
  737.                         PCBSuperScript with information on how it should
  738.                         handle user entry for this variable.
  739.  
  740.                         The mask is a combination of special formatting
  741.                         characters and literal text that describes how each
  742.                         character of the field should be handled. A mask may
  743.                         consist of literal characters or any of the
  744.                         following special characters:
  745.  
  746.                           %   digits 0-9, minus ('-'), space
  747.                           9   digits 0-9
  748.                           *   any character (ascii 32-255)
  749.                           !   printable characters (ascii 32-127)
  750.                           a   space, a-z, A-Z, 0-9 (converts to lower)
  751.                           A   space, a-z, A-Z, 0-9 (converts to upper)
  752.                           h   hex char's 0-9, a-f, A-F (converts to lower)
  753.                           H   hex char's 0-9, a-f, A-F (converts to upper)
  754.                           Y   Yes or No
  755.                           P   Protected. A dot ('.') is eched back to the
  756.                               caller.
  757.                          <>   Inclusion set. Char's between matching <> are
  758.                               considered the only allowable char's for the
  759.                               position marked by '<'.
  760.  
  761.                         If the length of the mask is less than the defined
  762.                         length of the variable, the mask is expanded to the
  763.                         defined length. The last character in the mask is
  764.                         used for the expansion. See 'Name' field below.
  765.  
  766.               default   The default value of the field (optional). This can
  767.                         be any text enclosed by matching quotes, system
  768.                         variables or environmental variables (see System
  769.                         Variables).
  770.  
  771.       Notes:  none
  772.  
  773.     Example:  FIELDS
  774.                 Option    C    1   0    1  <ALEale>
  775.                 Name      C   25   0    0  *!               @user@
  776.                 Company   C   25   0    3  !
  777.                 Addr      C   25   0    5  !
  778.                 CitySt    C   25   0    5  !                @city@
  779.                 Zip       C    5   0    5  99999
  780.                 Country   C   15   0    3  !                USA
  781.                 Phone     C   13   0   13  (999)999-9999
  782.                 Fax       C   13   0    0  (999)999-9999
  783.                 Num2Call  C   45   0    0  *
  784.                 Age       C    2   0    2  99
  785.                 How       C   25   0    0  !
  786.                 Occup     C   25   0    0  !
  787.                 PCType    C   25   0    0  !
  788.                 NetWork   C   25   0    0  !
  789.               FIELDS
  790.  
  791.  
  792.   --------------------------------------------------------------------------
  793.   FLUSH_KB
  794.   --------------------------------------------------------------------------
  795.  
  796.        Desc:  Discard any characters remaining in the keyboard buffer.
  797.  
  798.       Parms:  None.
  799.  
  800.       Notes:  none.
  801.  
  802.     Example:  FLUSH_KB
  803.  
  804.  
  805.   --------------------------------------------------------------------------
  806.   FORCE_ENTER
  807.   --------------------------------------------------------------------------
  808.  
  809.        Desc:  Displays a "Press Enter to continue..." prompt, and waits for
  810.               the caller to press ENTER.
  811.  
  812.       Parms:  none.
  813.  
  814.       Notes:  none.
  815.  
  816.     Example:  FORCE_ENTER
  817.  
  818.  
  819.   --------------------------------------------------------------------------
  820.   FORMAT <fname> <key flds...>
  821.     <vname>
  822.     ...
  823.   FORMAT
  824.   --------------------------------------------------------------------------
  825.  
  826.        Desc:  Defines a format to use with READ or WRITE.
  827.  
  828.       Parms:  fname     The name of the format. 1 to 32 char's. Case *is*
  829.                         significant.
  830.  
  831.               key flds  The name(s) of the fields in this format that
  832.                         comprise the key to a record (multiple key segments
  833.                         are supported).
  834.  
  835.               vname     The name of a previously defined variable.
  836.  
  837.       Notes:  Variables referenced must be previously defined in a FIELDS
  838.               block.
  839.  
  840.     Example:  FIELDS
  841.                 Name      C   25   0    0  *!                      @user@
  842.                 Company   C   25   0    3  !
  843.                 Addr      C   25   0    5  !
  844.                 CitySt    C   25   0    5  !                       @city@
  845.                 Zip       C    5   0    5  99999
  846.                 Country   C   10   0    3  !                       USA
  847.                 Phone     C   13   0   13  (999)999-9999
  848.                 Fax       C   13   0    0  (999)999-9999
  849.                 Age       C    2   0    2  99
  850.                 How       C   25   0    0  !
  851.                 Occup     C   25   0    0  !
  852.                 PCType    C   25   0    0  !
  853.                 NetWork   C   25   0    0  !
  854.                 NetWork   C   25   0    0  !
  855.                 BankTime  N    3   0    0  999    0
  856.                 Num2Call  C   45   0    0  *
  857.               FIELDS
  858.  
  859.               FORMAT HistFmt Name
  860.                 Name
  861.                 Company
  862.                 Addr
  863.                 CitySt
  864.                 Zip
  865.                 Country
  866.                 Phone
  867.                 Fax
  868.                 Age
  869.                 How
  870.                 Occup
  871.                 PCType
  872.                 NetWork
  873.                 BankTime
  874.                 Num2Call
  875.               FORMAT
  876.  
  877.  
  878.   --------------------------------------------------------------------------
  879.   INC <var>
  880.   --------------------------------------------------------------------------
  881.  
  882.        Desc:  Increment the value of 'var' by one.
  883.  
  884.       Parms:  var       the variable to increment
  885.  
  886.       Notes:  none.
  887.  
  888.     Example:  INC Counter         ;Counter = Counter + 1
  889.  
  890.  
  891.  
  892.   --------------------------------------------------------------------------
  893.   INDENT <cols>
  894.   --------------------------------------------------------------------------
  895.  
  896.        Desc:  Indent the data displayed by the TEXT command.
  897.  
  898.       Parms:  cols      the number of cols to indent
  899.  
  900.       Notes:  none.
  901.  
  902.     Example:  INDENT 5            ;indent all TEXT displays 5 cols
  903.  
  904.  
  905.   --------------------------------------------------------------------------
  906.   GETCINFO <conf> <flag> <var>
  907.   --------------------------------------------------------------------------
  908.  
  909.        Desc:  Gets the status of a specified conference for the caller.
  910.  
  911.       Parms:  conf      the conference number (0=main).
  912.               flag      REGISTERED,EXPIRED,SCANMAIL,SYSOP,HASMAIL,JOINED,
  913.                         SCANNED.
  914.               var       the variable to store result of command.
  915.  
  916.       Notes:  'var' will be set to '1' if the flag is true, and to '0'
  917.               otherwise.
  918.  
  919.     Example:  GETCINFO 0 REGISTERED xvar
  920.  
  921.  
  922.   --------------------------------------------------------------------------
  923.   GETWORD <var>
  924.   --------------------------------------------------------------------------
  925.  
  926.        Desc:  Gets the next word from "string" (referred to by a previous
  927.               PARSE command). If the end of line is reached, "var" will be
  928.               set to the value "*EOL*".
  929.  
  930.       Parms:  var       variable to store result in.
  931.  
  932.       Notes:  The commands "PARSE" and "GETWORD" allow scripts to parse data
  933.               fields or environment variables into individual words. To use
  934.               these commands, "PARSE" *MUST* be called FIRST to setup
  935.               subsequent calls to "GETWORD".
  936.  
  937.     Example:  ......
  938.               ......
  939.               PARSE @%PCBDOOR
  940.               GETWORD Option
  941.               IF Option == "*EOL*"
  942.                 GOTO BadCmd
  943.               ENDIF
  944.               GETWORD FileName
  945.               IF FileName == "*EOL*"
  946.                 GOTO BadCmd
  947.               ENDIF
  948.               ......
  949.               ......
  950.  
  951.  
  952.   --------------------------------------------------------------------------
  953.   GETMSG <format> <srow> <scol> <rows> <cols>
  954.   --------------------------------------------------------------------------
  955.  
  956.        Desc:  Enter data in a message controlled format.
  957.  
  958.       Parms:  format    The name of the FORMAT for this message.
  959.               srow      The starting row of the message entry area.
  960.               scol      The starting col of the message entry area.
  961.               rows      The number of DISPLAY rows of the msg. The number of
  962.                         message rows are deduced from the the number of
  963.                         fields defined in the format used with this msg
  964.                         command.
  965.               cols      The number of display columns for this message entry
  966.                         area.
  967.  
  968.  
  969.       Notes:  The GETMSG has the same commands, and acts in the same manner
  970.               as the PCBoard full screen message entry does. This command is
  971.               most often used to get caller comments, special instructions,
  972.               etc... Note that the caller must be in graphics mode for this
  973.               command to function correctly.
  974.  
  975.     Example:  FIELDS
  976.                 msg1      C   30   0    0  "*" ""
  977.                 msg2      C   30   0    0  "*" ""
  978.                 msg3      C   30   0    0  "*" ""
  979.                 msg4      C   30   0    0  "*" ""
  980.                 msg5      C   30   0    0  "*" ""
  981.                 msg6      C   30   0    0  "*" ""
  982.                 msg7      C   30   0    0  "*" ""
  983.                 msg8      C   30   0    0  "*" ""
  984.                 msg9      C   30   0    0  "*" ""
  985.                 msg10     C   30   0    0  "*" ""
  986.               FIELDS
  987.               ...
  988.               ...
  989.               FORMAT MsgFmt
  990.                 msg1
  991.                 msg2
  992.                 msg3
  993.                 msg4
  994.                 msg5
  995.                 msg6
  996.                 msg7
  997.                 msg8
  998.                 msg9
  999.                 msg10
  1000.               FORMAT
  1001.               ...
  1002.               ...
  1003.               getmsg MsgFmt 8 9 5 30    ;enter a msg at row 8, col 9. There
  1004.                                         ;will be 5 displayed rows and 30
  1005.                                         ;display columns, but the caller can
  1006.                                         ;enter upto 10 message lines (rows).
  1007.                                         ;The message data will scroll as
  1008.                                         ;needed during entry.
  1009.  
  1010.  
  1011.   --------------------------------------------------------------------------
  1012.   FREECORE
  1013.   --------------------------------------------------------------------------
  1014.  
  1015.        Desc:  Display the amount of free PCBSuperScript variable memory in
  1016.               bytes.
  1017.  
  1018.       Parms:  none
  1019.  
  1020.       Notes:  none.
  1021.  
  1022.     Example:  FREECORE
  1023.  
  1024.  
  1025.   --------------------------------------------------------------------------
  1026.   GOODBYE
  1027.   --------------------------------------------------------------------------
  1028.  
  1029.        Desc:  Hangup the caller and say goodbye from the script and
  1030.               PCBoard.
  1031.  
  1032.       Parms:  none
  1033.  
  1034.       Notes:  none.
  1035.  
  1036.     Example:  GOODBYE
  1037.  
  1038.  
  1039.   --------------------------------------------------------------------------
  1040.   GOSUB <label>
  1041.   --------------------------------------------------------------------------
  1042.  
  1043.        Desc:  Perform subroutine at "label".
  1044.  
  1045.       Parms:  label     the label to transfer execution to
  1046.  
  1047.       Notes:  The label that is referenced by the GOSUB command may be a
  1048.               variable.
  1049.  
  1050.     Example:  ...
  1051.               ...
  1052.               TEXT  "prior to GOSUB"
  1053.               GOSUB There
  1054.               TEXT  "back from GOSUB"
  1055.               STOP
  1056.               :There
  1057.                 TEXT  "in GOSUB"
  1058.                 RETURN
  1059.  
  1060.  
  1061.   --------------------------------------------------------------------------
  1062.   GOTO <label>
  1063.   --------------------------------------------------------------------------
  1064.  
  1065.        Desc:  Transfer control to the specified "label". The "label"
  1066.               referenced by the GOTO command must exist in the script file.
  1067.  
  1068.       Parms:  label     the label to transfer execution to
  1069.  
  1070.       Notes:  The label that is referenced by the GOTO command may be a
  1071.               variable.
  1072.  
  1073.     Example:  ...
  1074.               ...
  1075.               :There
  1076.                 ....
  1077.                 ....
  1078.                 ....
  1079.                 GOTO There
  1080.               ...
  1081.               ...
  1082.  
  1083.  
  1084.   --------------------------------------------------------------------------
  1085.   GOTORC <row> <col>
  1086.   --------------------------------------------------------------------------
  1087.  
  1088.        Desc:  Positions the cursor to "row" and "col".
  1089.  
  1090.       Parms:  row       1 based row value
  1091.               col       1 based column value
  1092.  
  1093.       Notes:  This command may only be used if the caller in is graphics
  1094.               mode.
  1095.  
  1096.     Example:  GOTORC 1 1
  1097.  
  1098.  
  1099.   --------------------------------------------------------------------------
  1100.   HANGUP
  1101.   --------------------------------------------------------------------------
  1102.  
  1103.        Desc:  Drop DTR on caller.
  1104.  
  1105.       Parms:  none
  1106.  
  1107.       Notes:  none
  1108.  
  1109.     Example:  HANGUP
  1110.  
  1111.  
  1112.   --------------------------------------------------------------------------
  1113.   IF <val1> [<test> <val2>]
  1114.     <stmnts>
  1115.   [ELSE
  1116.     <stmnts>]
  1117.   ENDIF
  1118.   --------------------------------------------------------------------------
  1119.  
  1120.        Desc:  Allow selective execution of script statements based on
  1121.               variable values. The IF/ELSE/ENDIF clause is used as in most
  1122.               any other language. Note that the ENDIF statement MUST be
  1123.               used.
  1124.  
  1125.               If only one field is used in the IF statement, it is simply
  1126.               tested for NULL. For example:
  1127.  
  1128.                 IF Name
  1129.                   ...
  1130.                 ENDIF
  1131.  
  1132.               Is the same as:
  1133.  
  1134.                 IF Name != ""
  1135.                   ...
  1136.                 ENDIF
  1137.  
  1138.               If the ELSE statement is included, statements between it and
  1139.               the matching ENDIF statement are executed if the previous IF
  1140.               statement fails.
  1141.  
  1142.       Parms:  val1      The first of two values to test.
  1143.               test      The test to perform. Valid test operators are:
  1144.                           ==    equal
  1145.                           !=    not equal
  1146.                           >     greater than
  1147.                           >=    greater than, or equal
  1148.                           <     less than
  1149.                           <=    less than, or equal
  1150.                           ?     if val1 is in val2
  1151.                           !?    if val1 is not in val2
  1152.  
  1153.               val2      The second of two values to test.
  1154.               stmnts    Any number of valid statements.
  1155.  
  1156.       Notes:  The IF/ELSE/ENDIF clause may be nested to any level.
  1157.  
  1158.  
  1159.   --------------------------------------------------------------------------
  1160.   IMAGE row col
  1161.     ...data...
  1162.     ...data...
  1163.   IMAGE
  1164.   --------------------------------------------------------------------------
  1165.  
  1166.        Desc:
  1167.  
  1168.       Parms:  var       variable to store result in.
  1169.  
  1170.       Notes:
  1171.  
  1172.     Example:  ......
  1173.  
  1174.  
  1175.   --------------------------------------------------------------------------
  1176.   INCREASE <inc> <max>
  1177.   --------------------------------------------------------------------------
  1178.  
  1179.        Desc:  Increase sec level by 'inc', but do not allow to be more than
  1180.               'max'.
  1181.  
  1182.       Parms:  inc       increment amount.
  1183.               max       maximum allowed value of security level
  1184.  
  1185.       Notes:  A modified security level is not written back to the user file
  1186.               until the UPDATE_USER_RECORD command is executed.
  1187.  
  1188.     Example:  INCREASE 1 10
  1189.  
  1190.  
  1191.   --------------------------------------------------------------------------
  1192.   INCLUDE <file>
  1193.   --------------------------------------------------------------------------
  1194.  
  1195.        Desc:  Reads a specified file into the current script, at the
  1196.               location of the "INCLUDE" command.
  1197.  
  1198.       Parms:  file      The file name to include.
  1199.  
  1200.       Notes:  "INCLUDE" statements may be nested to a level of 10.
  1201.  
  1202.     Example:  INCLUDE "J:\PCB\SS\DEF.INC"
  1203.  
  1204.  
  1205.   --------------------------------------------------------------------------
  1206.   LCASE <var>
  1207.   --------------------------------------------------------------------------
  1208.  
  1209.        Desc:  Converts all characters in "var" to lower case.
  1210.  
  1211.       Parms:  var       The variable to modify.
  1212.  
  1213.       Notes:  none
  1214.  
  1215.     Example:  LCASE Occupation
  1216.  
  1217.  
  1218.   --------------------------------------------------------------------------
  1219.   LOG_DATA <file>
  1220.     <..data..>
  1221.     ...
  1222.   LOG_DATA
  1223.   --------------------------------------------------------------------------
  1224.  
  1225.        Desc:  Define what and where PCBSuperScript will log data to. If the
  1226.               file currently exists, it will be appended to, otherwise it
  1227.               will be created.
  1228.  
  1229.       Parms:  file      The log file name.
  1230.               ..data..  The data to write to the log file.
  1231.  
  1232.       Notes:  Lines between matching "LOG_DATA" keywords, are considered log
  1233.               file descriptor lines. The format for a log file descriptor
  1234.               line is a variable combination of literal data, field names,
  1235.               system variables and environment variables. The combined total
  1236.               length of a log file descriptor line (after macro and variable
  1237.               expansion) may not exceed a length of 512.
  1238.  
  1239.     Example:  LOG_DATA J:\PCB\SS\NEWCALL.LOG
  1240.                 "            Name: " Name
  1241.                 "         Company: " Company
  1242.                 "  Address line 1: " Addr1
  1243.                 "  Address line 2: " Addr2
  1244.                 "     City, State: " CitySt
  1245.                 "             Zip: " Zip
  1246.                 "         Country: " Country
  1247.                 "    Phone Number: " Phone
  1248.                 "      Fax Number: " Fax
  1249.                 "       Date/Time: " @sysdate@  @systime@
  1250.                 "  Node/Port/Baud: " @node@  @port@  @bps@
  1251.               LOG_DATA
  1252.  
  1253.  
  1254.   --------------------------------------------------------------------------
  1255.   LOG_MSG <msg>
  1256.   --------------------------------------------------------------------------
  1257.  
  1258.        Desc:  Writes "msg" to the caller log file for this node.
  1259.  
  1260.       Parms:  msg       The message to write.
  1261.  
  1262.       Notes:  none
  1263.  
  1264.     Example:  LOG_MSG @user@ " accessed this door"
  1265.  
  1266.  
  1267.   --------------------------------------------------------------------------
  1268.   ENTRY_MAX_ATTR [BRIGHT] <fcolor> [BLINK] <bcolor>
  1269.   --------------------------------------------------------------------------
  1270.  
  1271.        Desc:  Defines the color of the "maximum" field character in PROMPT
  1272.               and ACCEPT commands.
  1273.  
  1274.       Parms:  BRIGHT    optional modifier to cause the foreground color to
  1275.                         display as bright.
  1276.               fcolor    the foreground color to use.
  1277.               BLINK     optional modifier to cause the display to blink.
  1278.               bcolor    the background color to use.
  1279.  
  1280.       Notes:  This command may only be used if the caller in is graphics
  1281.               mode. Valid colors are: BLACK, RED, GREEN, YELLOW, BLUE,
  1282.               MAGENTA, CYAN and WHITE.
  1283.  
  1284.     Example:  ENTRY_MAX_ATTR  BLUE BLACK
  1285.  
  1286.  
  1287.   --------------------------------------------------------------------------
  1288.   ENTRY_MAX_CHAR <char>
  1289.   --------------------------------------------------------------------------
  1290.  
  1291.        Desc:  Defines the character used to signify the maximum number of
  1292.               characters to be entered in PROMPT and ACCEPT commands. The
  1293.               default is a period ('.').
  1294.  
  1295.       Parms:  char      The new character to use.
  1296.  
  1297.       Notes:  none
  1298.  
  1299.     Example:  ENTRY_MAX_CHAR "\xFA"
  1300.  
  1301.  
  1302.   --------------------------------------------------------------------------
  1303.   ENTRY_MIN_ATTR [BRIGHT] <fcolor> [BLINK] <bcolor>
  1304.   --------------------------------------------------------------------------
  1305.  
  1306.        Desc:  Defines the color of the "minimum" field character in PROMPT
  1307.               and ACCEPT commands.
  1308.  
  1309.       Parms:  BRIGHT    optional modifier to cause the foreground color to
  1310.                         display as bright.
  1311.               fcolor    the foreground color to use.
  1312.               BLINK     optional modifier to cause the display to blink.
  1313.               bcolor    the background color to use.
  1314.  
  1315.       Notes:  This command may only be used if the caller in is graphics
  1316.               mode. Valid colors are: BLACK, RED, GREEN, YELLOW, BLUE,
  1317.               MAGENTA, CYAN and WHITE.
  1318.  
  1319.     Example:  ENTRY_MIN_ATTR  RED BLACK
  1320.  
  1321.  
  1322.   --------------------------------------------------------------------------
  1323.   ENTRY_MIN_CHAR <char>
  1324.   --------------------------------------------------------------------------
  1325.  
  1326.        Desc:  Defines the character used to signify the minimum number of
  1327.               characters to be entered in PROMPT and ACCEPT commands. The
  1328.               default is an underscore ('_').
  1329.  
  1330.       Parms:  char      The new character to use.
  1331.  
  1332.       Notes:  none
  1333.  
  1334.     Example:  ENTRY_MIN_CHAR "\xC4"
  1335.  
  1336.  
  1337.   --------------------------------------------------------------------------
  1338.   MSG
  1339.     <to>
  1340.     <from>
  1341.     <subject>
  1342.     <security>
  1343.     <conf>
  1344.     ...message data...
  1345.     ...
  1346.   MSG
  1347.   --------------------------------------------------------------------------
  1348.  
  1349.        Desc:  The "MSG" command adds a message to a specified message base.
  1350.  
  1351.       Parms:  to        The name of the person this message is being sent
  1352.                         to. This can be a literal value, a system variable
  1353.                         (i.e. @user@) or a variable currently defined in the
  1354.                         script.
  1355.  
  1356.               from      The name of the person this message is from. This
  1357.                         can be a literal value, a system variable (i.e.
  1358.                         @user@) or a variable currently defined in the
  1359.                         script.
  1360.  
  1361.               subject   The subject of this message. This can be a literal
  1362.                         value or a variable currently defined in the script.
  1363.  
  1364.               security  The security of this message. Valid choices are
  1365.                         "Private", Comment" and "Public" (case is not
  1366.                         significant). This can be a literal value or a
  1367.                         variable currently defined in the script.
  1368.  
  1369.               conf      The conference to place the message in. This can be
  1370.                         a literal value or a variable currently defined in
  1371.                         the script. Note that the spelling *and* case of the
  1372.                         conference name *MUST* be exact.
  1373.  
  1374.               msg data  The text body of the message. Up to 99 lines will be
  1375.                         processed. This can be any combination of literal
  1376.                         data, system variables and currently defined script
  1377.                         variables.
  1378.  
  1379.     Example:  ;
  1380.               ;send comment to sysop
  1381.               ;
  1382.               MSG
  1383.                 SYSOP                   ;to
  1384.                 SYSOP                   ;from
  1385.                 "New User Called"       ;subj
  1386.                 Comment                 ;sec
  1387.                 "Main Board"            ;conf
  1388.                 "A new user named " @user@ " has called the system."
  1389.                 "The date and time was " @sysdate@ " : " @systime@ "."
  1390.                 "They are from " @city@ "
  1391.                 "Their phone is " Phone
  1392.                 "Their occupation is " Occup "
  1393.                 "They are " Age " years old."
  1394.                 ""
  1395.                 "Node: " @node@ "  Baud Rate: " @bps@
  1396.               MSG
  1397.               ;
  1398.               ;send private msg to the new caller
  1399.               ;
  1400.               MSG
  1401.                 @user@                  ;to
  1402.                 SYSOP                   ;from
  1403.                 "Welcome!"              ;subj
  1404.                 Private                 ;sec
  1405.                 "Main Board"            ;conf
  1406.                 "Welcome to our BBS! This is your first message here!"
  1407.               MSG
  1408.  
  1409.  
  1410.   --------------------------------------------------------------------------
  1411.   MUL <var> <val1> <val2>
  1412.   --------------------------------------------------------------------------
  1413.  
  1414.        Desc:  Multiply "val1" and "val2", then store the result in variable
  1415.               "var".
  1416.  
  1417.       Parms:  var       variable to store result in.
  1418.               val1      value 1 to multiply
  1419.               val2      value 2 to multiply
  1420.  
  1421.       Notes:  The result is treated as a 10.2 float value.
  1422.  
  1423.     Example:  MUL Tot Qty Price   ;Tot = Qty * Price
  1424.               MUL Tot Price 3     ;Tot = Price * 3
  1425.  
  1426.  
  1427.   --------------------------------------------------------------------------
  1428.   NEWLINE <count>
  1429.   --------------------------------------------------------------------------
  1430.  
  1431.        Desc:  Display one or more blank lines to the screen.
  1432.  
  1433.       Parms:  count     optional number of new lines to display. Default is
  1434.                         one.
  1435.  
  1436.       Notes:  The maximum number of blank lines that may be displayed is
  1437.               65,535.
  1438.  
  1439.     Example:  NEWLINE 24      ;display 24 new lines to crt (fake clr crt)
  1440.  
  1441.  
  1442.   --------------------------------------------------------------------------
  1443.   NULL_ENTRY  <label>
  1444.   --------------------------------------------------------------------------
  1445.  
  1446.        Desc:  If the last performed PROMPT entry resulted in a null entry,
  1447.               processing will branch to "label".
  1448.  
  1449.       Parms:  label     the label to transfer execution to
  1450.  
  1451.       Notes:  none
  1452.  
  1453.     Example:  PROMPT "            Name: " Name
  1454.               NULL_ENTRY  AbortJob
  1455.  
  1456.  
  1457.   --------------------------------------------------------------------------
  1458.   OPEN  <hdl> <file>
  1459.   --------------------------------------------------------------------------
  1460.  
  1461.        Desc:  OPEN prepares a script for data file access. Up to 10 files
  1462.               may be open at the same time, using handles from 0 to 9. If
  1463.               the specified HDL is already in use by a previous call to
  1464.               OPEN, it is first closed.
  1465.  
  1466.       Parms:  hdl       This is the handle number, and must be a number
  1467.                         from 0 to 9.
  1468.               file      The name of the file.
  1469.  
  1470.       Notes:  The macro "@file_stat@" contains the result of the last data
  1471.               file operation performed by PCBSuperScript. All data file
  1472.               functions load this macro with "*OK*" if no error occurred.
  1473.               This macro should be checked after a data file function to
  1474.               insure proper script operation. See ORDER.DEF for examples of
  1475.               these commands.
  1476.  
  1477.               Also see "FORMAT".
  1478.  
  1479.     Example:  OPEN  0 J:\PCB\SS\DATA.DAT
  1480.               READ  0 DatFmt
  1481.               CLOSE 0
  1482.  
  1483.  
  1484.   --------------------------------------------------------------------------
  1485.   PARSE <string>
  1486.   --------------------------------------------------------------------------
  1487.  
  1488.        Desc:  Prepares "string" for call to the command GETWORD.
  1489.  
  1490.       Parms:  string    The string to parse
  1491.  
  1492.       Notes:  The commands "PARSE" and "GETWORD" allow scripts to parse data
  1493.               fields or environment variables into individual words. To use
  1494.               these commands, "PARSE" *MUST* be called FIRST to setup
  1495.               subsequent calls to "GETWORD".
  1496.  
  1497.     Example:  ......
  1498.               ......
  1499.               PARSE @%PCBDOOR
  1500.               GETWORD Option
  1501.               IF Option == "*EOL*"
  1502.                 GOTO BadCmd
  1503.               ENDIF
  1504.               GETWORD FileName
  1505.               IF FileName == "*EOL*"
  1506.                 GOTO BadCmd
  1507.               ENDIF
  1508.               ......
  1509.               ......
  1510.  
  1511.  
  1512.   --------------------------------------------------------------------------
  1513.   PARSEPHONE <phone#> <area> <exchg> <number>
  1514.   --------------------------------------------------------------------------
  1515.  
  1516.        Desc:  Parse a phone number into it's components.
  1517.  
  1518.       Parms:  phone#    The phone number to parse.
  1519.               area      The variable to store the area code into
  1520.               exchg     The variable to store the exchange into
  1521.               number    The variable to store the number into
  1522.  
  1523.       Notes:  The phone number may be in (almost) any format. All characters
  1524.               other than digits are striped from the input and then seperated
  1525.               into it's components. Components that are not included in the
  1526.               input are set to blanks in the matching variable.
  1527.  
  1528.     Example:  set         Num2Call "1(813)123-4567"
  1529.               parsephone  Num2Call area exch pnum
  1530.               TEXT        "Area code: " area        ;813
  1531.               TEXT        " Exchange: " excg        ;123
  1532.               TEXT        "   Number: " pnum        ;4567
  1533.  
  1534.     Example:  set         Num2Call "  813 123 4567"
  1535.               parsephone  Num2Call area exch pnum
  1536.               TEXT        "Area code: " area        ;813
  1537.               TEXT        " Exchange: " excg        ;123
  1538.               TEXT        "   Number: " pnum        ;4567
  1539.  
  1540.     Example:  set         Num2Call "123 4567"
  1541.               parsephone  Num2Call area exch pnum
  1542.               TEXT        "Area code: " area        ;"   "
  1543.               TEXT        " Exchange: " excg        ;123
  1544.               TEXT        "   Number: " pnum        ;4567
  1545.  
  1546.     Example:  set         Num2Call " 4567"
  1547.               parsephone  Num2Call area exch pnum
  1548.               TEXT        "Area code: " area        ;"   "
  1549.               TEXT        " Exchange: " excg        ;"   "
  1550.               TEXT        "   Number: " pnum        ;4567
  1551.  
  1552.   --------------------------------------------------------------------------
  1553.   PROMPT <prompt> <var>
  1554.   --------------------------------------------------------------------------
  1555.  
  1556.        Desc:  Get keyboard input from caller.
  1557.  
  1558.       Parms:  prompt    The prompt displayed to the caller.
  1559.               var       The variable name used to store the caller's entry.
  1560.  
  1561.       Notes:  none.
  1562.  
  1563.     Example:  PROMPT "            Name: " Name
  1564.  
  1565.  
  1566.   --------------------------------------------------------------------------
  1567.   PRINT <lp> <text>
  1568.   --------------------------------------------------------------------------
  1569.  
  1570.        Desc:  Print data to the specified printer.
  1571.  
  1572.       Parms:  lp        The printer # to print to (1=LPT1,2=LPT2,3=LPT3)
  1573.               text      The data to print. If the text is "_FF", a form feed
  1574.                         is sent to the printer.
  1575.  
  1576.       Notes:  none.
  1577.  
  1578.     Example:  PRINT 1 "-------------------------------------------------"
  1579.               PRINT 1 "New Caller"
  1580.               PRINT 1 "-------------------------------------------------"
  1581.               PRINT 1 " Name: " Name
  1582.               PRINT 1 " City: " City
  1583.               PRINT 1 "-------------------------------------------------"
  1584.  
  1585.  
  1586.   --------------------------------------------------------------------------
  1587.   RANDOM_STR <count> <var>
  1588.   --------------------------------------------------------------------------
  1589.  
  1590.        Desc:  Generate a string of "count" characters, and store the
  1591.               result in variable "string"
  1592.  
  1593.       Parms:  count     The number of random characters to generate. If
  1594.                         this value is 0, the generated string will be
  1595.                         equal to the size of the variable "string".
  1596.               string    Variable to store the result in.
  1597.  
  1598.       Notes:  The generated string will contain alpha numeric characters
  1599.               only.
  1600.  
  1601.     Example:  RANDOM_STR 0 random_str
  1602.  
  1603.  
  1604.   --------------------------------------------------------------------------
  1605.   READ  <hdl> <format>
  1606.   --------------------------------------------------------------------------
  1607.  
  1608.        Desc:  READ reads a data record from the file specified by 'hdl',
  1609.               into the variables contained in 'format'. The key that is used
  1610.               to read the data file is built from the key fields in the
  1611.               specified format.
  1612.  
  1613.       Parms:  hdl       The file handle, and must be a number from 0 to 9.
  1614.  
  1615.               format    The name of the FORMAT for this file.
  1616.  
  1617.  
  1618.       Notes:  The macro "@file_stat@" contains the result of the last data
  1619.               file operation performed by PCBSuperScript. All data file
  1620.               functions load this macro with "*OK*" if no error occurred.
  1621.               If the end of file is reached, the macro "@file_stat@" is set
  1622.               to the value "*EOF*" (End Of File). This macro should be
  1623.               checked after a data file function to insure proper script
  1624.               operation.
  1625.  
  1626.               Also see "FORMAT".
  1627.  
  1628.     Example:  OPEN   0 J:\PCB\SS\DATA.DAT
  1629.               READ   0 DatFmt
  1630.               CLOSE  0
  1631.  
  1632.  
  1633.   --------------------------------------------------------------------------
  1634.   READF <hdl> <format>
  1635.   --------------------------------------------------------------------------
  1636.  
  1637.        Desc:  READF reads the first data record from the file specified by
  1638.               'hdl', into the variables contained in 'format'.
  1639.  
  1640.       Parms:  hdl       The file handle, and must be a number from 0 to 9.
  1641.  
  1642.               format    The name of the FORMAT for this file.
  1643.  
  1644.  
  1645.       Notes:  The macro "@file_stat@" contains the result of the last data
  1646.               file operation performed by PCBSuperScript. All data file
  1647.               functions load this macro with "*OK*" if no error occurred.
  1648.               If the end of file is reached, the macro "@file_stat@" is set
  1649.               to the value "*EOF*" (End Of File). This macro should be
  1650.               checked after a data file function to insure proper script
  1651.               operation.
  1652.  
  1653.               Also see "FORMAT".
  1654.  
  1655.     Example:  OPEN   0 J:\PCB\SS\DATA.DAT
  1656.               READF  0 DatFmt
  1657.               CLOSE  0
  1658.  
  1659.  
  1660.   --------------------------------------------------------------------------
  1661.   READL <hdl> <format>
  1662.   --------------------------------------------------------------------------
  1663.  
  1664.        Desc:  READL reads the last data record from the file specified by
  1665.               'hdl', into the variables contained in 'format'.
  1666.  
  1667.       Parms:  hdl       The file handle, and must be a number from 0 to 9.
  1668.  
  1669.               format    The name of the FORMAT for this file.
  1670.  
  1671.  
  1672.       Notes:  The macro "@file_stat@" contains the result of the last data
  1673.               file operation performed by PCBSuperScript. All data file
  1674.               functions load this macro with "*OK*" if no error occurred.
  1675.               If the end of file is reached, the macro "@file_stat@" is set
  1676.               to the value "*EOF*" (End Of File). This macro should be
  1677.               checked after a data file function to insure proper script
  1678.               operation.
  1679.  
  1680.               Also see "FORMAT".
  1681.  
  1682.     Example:  OPEN   0 J:\PCB\SS\DATA.DAT
  1683.               READL  0 DatFmt
  1684.               CLOSE  0
  1685.  
  1686.  
  1687.   --------------------------------------------------------------------------
  1688.   READN <hdl> <format>
  1689.   --------------------------------------------------------------------------
  1690.  
  1691.        Desc:  READN reads the next data record from the file specified by
  1692.               'hdl', into the variables contained in 'format'.
  1693.  
  1694.       Parms:  hdl       The file handle, and must be a number from 0 to 9.
  1695.  
  1696.               format    The name of the FORMAT for this file.
  1697.  
  1698.  
  1699.       Notes:  The macro "@file_stat@" contains the result of the last data
  1700.               file operation performed by PCBSuperScript. All data file
  1701.               functions load this macro with "*OK*" if no error occurred.
  1702.               If the end of file is reached, the macro "@file_stat@" is set
  1703.               to the value "*EOF*" (End Of File). This macro should be
  1704.               checked after a data file function to insure proper script
  1705.               operation.
  1706.  
  1707.               Also see "FORMAT".
  1708.  
  1709.     Example:  OPEN   0 J:\PCB\SS\DATA.DAT
  1710.               READN  0 DatFmt
  1711.               CLOSE  0
  1712.  
  1713.  
  1714.   --------------------------------------------------------------------------
  1715.   READP <hdl> <format>
  1716.   --------------------------------------------------------------------------
  1717.  
  1718.        Desc:  READP reads the previous data record from the file specified
  1719.               by 'hdl', into the variables contained in 'format'.
  1720.  
  1721.       Parms:  hdl       The file handle, and must be a number from 0 to 9.
  1722.  
  1723.               format    The name of the FORMAT for this file.
  1724.  
  1725.  
  1726.       Notes:  The macro "@file_stat@" contains the result of the last data
  1727.               file operation performed by PCBSuperScript. All data file
  1728.               functions load this macro with "*OK*" if no error occurred.
  1729.               If the end of file is reached, the macro "@file_stat@" is set
  1730.               to the value "*EOF*" (End Of File). This macro should be
  1731.               checked after a data file function to insure proper script
  1732.               operation.
  1733.  
  1734.               Also see "FORMAT".
  1735.  
  1736.     Example:  OPEN   0 J:\PCB\SS\DATA.DAT
  1737.               READP  0 DatFmt
  1738.               CLOSE  0
  1739.  
  1740.  
  1741.   --------------------------------------------------------------------------
  1742.   REPEAT <row> <col> <char> <cnt>
  1743.   --------------------------------------------------------------------------
  1744.  
  1745.        Desc:  Display a specified character a specified number of times, at
  1746.               a specified row and col.
  1747.  
  1748.       Parms:  row       row to start display of "prompt".
  1749.               col       column to start display of "prompt".
  1750.               char      The character to display
  1751.               cnt       The number of characters to display
  1752.  
  1753.       Notes:  This command may only be used if the caller in is graphics
  1754.               mode.
  1755.  
  1756.     Example:  REPEAT 5 15 "─" 30
  1757.  
  1758.  
  1759.   --------------------------------------------------------------------------
  1760.   RETURN
  1761.   --------------------------------------------------------------------------
  1762.  
  1763.        Desc:  Return from a GOSUB
  1764.  
  1765.       Parms:  none
  1766.  
  1767.       Notes:  none
  1768.  
  1769.     Example:  ...
  1770.               ...
  1771.               TEXT  "prior to GOSUB"
  1772.               GOSUB There
  1773.               TEXT  "back from GOSUB"
  1774.               STOP
  1775.               :There
  1776.                 TEXT  "in GOSUB"
  1777.                 RETURN
  1778.  
  1779.  
  1780.   --------------------------------------------------------------------------
  1781.   RUN <script> <label>
  1782.   --------------------------------------------------------------------------
  1783.  
  1784.        Desc:  Execute another script. The script that is run does not return
  1785.               control to the caller on exit.
  1786.  
  1787.       Parms:  script    The name of the script to run.
  1788.               label     Optional label to start execution at.
  1789.  
  1790.       Notes:  none
  1791.  
  1792.     Example:  RUN "menu.def" StartUp
  1793.  
  1794.  
  1795.   --------------------------------------------------------------------------
  1796.   SEC_LOOKUP  <file>
  1797.   --------------------------------------------------------------------------
  1798.  
  1799.        Desc:  Searches the specified file for the user name. If it is found,
  1800.               the security level specified in the look-up file is used. This
  1801.               could be used in a new callers script, with the names of
  1802.               friends (or customers, or etc..) in the look-up file. Note
  1803.               that a modified security level is not written back to the user
  1804.               file until the UPDATE_USER_RECORD command is executed.
  1805.  
  1806.               The format of the look-up file is as follows:
  1807.  
  1808.                 name, level
  1809.  
  1810.       Parms:  file      The file name to search.
  1811.  
  1812.       Notes:  A modified security level is not written back to the user file
  1813.               until the UPDATE_USER_RECORD command is executed.
  1814.  
  1815.     Example:  look-up file contents:
  1816.  
  1817.                 ABDUL RASHEEDI, 50
  1818.                 RICHARD MORTON, 50
  1819.                 SHELDON GIBBS, 50
  1820.                 CRAIG FILLION, 50
  1821.                 MIKE SAUNDERS, 50
  1822.  
  1823.               These people would be given a security level of 50.
  1824.  
  1825.  
  1826.   --------------------------------------------------------------------------
  1827.   SEC_TABLE
  1828.     <val1> <val2>
  1829.     [<val1> <val2>]
  1830.     ...
  1831.   SEC_TABLE
  1832.   --------------------------------------------------------------------------
  1833.  
  1834.        Desc:  Change one specific level to another level. Any number of
  1835.               levels may be tested. When a match is made, the table is
  1836.               exited. Note that a modified security level is not written
  1837.               back to the user file until the UPDATE_USER_RECORD command is
  1838.               executed.
  1839.  
  1840.       Parms:  val1      Test security level
  1841.               val2      New security level, if current = val1
  1842.  
  1843.       Notes:  A modified security level is not written back to the user file
  1844.               until the UPDATE_USER_RECORD command is executed.
  1845.  
  1846.     Example:  SEC_TABLE       ;Security Table Start
  1847.                  9  10        ; users at sec level 9 goto 10
  1848.                 10  20        ; users at sec level 10 goto 20
  1849.                 20  30        ; users at sec level 20 goto 30
  1850.               SEC_TABLE       ;Security Table End
  1851.  
  1852.  
  1853.   --------------------------------------------------------------------------
  1854.   SENDMODEM <lmt> <cmnd>
  1855.   --------------------------------------------------------------------------
  1856.  
  1857.        Desc:  Send a string to the modem.
  1858.  
  1859.       Parms:  lmt       Time limit in seconds
  1860.               cmnd      Modem command.
  1861.  
  1862.       Notes:  none
  1863.  
  1864.     Example:  sendmodem 5 "ATZ"
  1865.  
  1866.  
  1867.   --------------------------------------------------------------------------
  1868.   SET <var> <val>
  1869.   --------------------------------------------------------------------------
  1870.  
  1871.        Desc:  Initialize (or modify) the current value of a variable. The
  1872.               "val" may contain a variable combination of literal data,
  1873.               field names, system variables and environment variables. The
  1874.               combination of all data (the final result) may not exceed 255
  1875.               char's.
  1876.  
  1877.       Parms:  var       The variable to modify.
  1878.               val       The value to store into "var".
  1879.  
  1880.       Notes:  none
  1881.  
  1882.     Example:  SET Row 1
  1883.  
  1884.  
  1885.   --------------------------------------------------------------------------
  1886.   SETCINFO <conf> <flag> <state>
  1887.   --------------------------------------------------------------------------
  1888.  
  1889.        Desc:  Sets the status of a specified conference for the caller.
  1890.  
  1891.       Parms:  conf      the conference number (0=main).
  1892.               flag      REGISTERED,EXPIRED,SCANMAIL,SYSOP,HASMAIL,JOINED,
  1893.                         SCANNED.
  1894.               state     TRUE or FALSE.
  1895.  
  1896.       Notes:  none
  1897.  
  1898.     Example:  SETCINFO 0 REGISTERED TRUE
  1899.  
  1900.     
  1901.   --------------------------------------------------------------------------
  1902.   SETMASK <var> <mask>
  1903.   --------------------------------------------------------------------------
  1904.  
  1905.        Desc:  Set the entry mask for a variable.
  1906.  
  1907.       Parms:  var       The variable to set the entry mask for.
  1908.               mask      The new entry mask.
  1909.  
  1910.       Notes:  none
  1911.  
  1912.     Example:  setmask Option "<123>"            ;set new entry mask
  1913.  
  1914.  
  1915.   --------------------------------------------------------------------------
  1916.   SHELL <prg> <parms>
  1917.   --------------------------------------------------------------------------
  1918.  
  1919.        Desc:  Shells to DOS and performs the command "prg". The command may
  1920.               be any combination of literal data, system variables and
  1921.               currently defined script variables. If the program requires
  1922.               paramters, use 'parms' to specify them.
  1923.  
  1924.       Parms:  prg       The program (or BAT file or DOS command)
  1925.               parms     Optional program parms
  1926.  
  1927.       Notes:  The macro "@shell_stat@" is loaded with the ERRORLEVEL of the
  1928.               SHELL command on return.
  1929.  
  1930.     Example:  SET DszCmd "j:\pcb\DSZ.com port " @port@
  1931.               ....
  1932.               ....
  1933.               SET DszCmd DszCmd " ha bo z rz -mrr " Directory
  1934.               SHELL DszCmd
  1935.  
  1936.  
  1937.   --------------------------------------------------------------------------
  1938.   SRCHTXTFILE  <srchtxt> <file>
  1939.   --------------------------------------------------------------------------
  1940.  
  1941.        Desc:  Search a text file for a specified string.
  1942.  
  1943.       Parms:  srchtxt   The text to search for.
  1944.               file      The file to search.
  1945.  
  1946.       Notes:  If the search text is found, "@file_stat@" will be set to
  1947.               "*OK*", otherwise it is set to "*KNF*".
  1948.  
  1949.     Example:  SRCHTXTFILE  Name mytcan.tst
  1950.               if @file_stat@ == "*OK*"
  1951.                 goodbye
  1952.               endif
  1953.  
  1954.  
  1955.   --------------------------------------------------------------------------
  1956.   SUB <var> <val1> <val2>
  1957.   --------------------------------------------------------------------------
  1958.  
  1959.        Desc:  Subtract "val2" from "val1", then store the result in variable
  1960.               "var".
  1961.  
  1962.       Parms:  var       variable to store result in.
  1963.               val1      Value to be subtracted from.
  1964.               val2      Value to subtract.
  1965.  
  1966.       Notes:  The result is treated as a 10.2 float value.
  1967.  
  1968.     Example:  SUB Temp Price Tax  ;Temp = Price - Tax
  1969.               SUB Tot Price 3     ;Tot = Price - 3
  1970.  
  1971.  
  1972.   --------------------------------------------------------------------------
  1973.   SWITCH <field>
  1974.     CASE [<val>|<field>]
  1975.       <stmnts>
  1976.       BREAK
  1977.     [CASE <val>|<field>
  1978.       <stmnts>
  1979.       BREAK]
  1980.     [DCASE
  1981.       <stmnts>
  1982.       BREAK]
  1983.   SWITCH END
  1984.   --------------------------------------------------------------------------
  1985.  
  1986.        Desc:  The SWITCH/CASE/BREAK clause allows processing based on a
  1987.               selected number of values, and is most often used in menu
  1988.               processing.
  1989.  
  1990.       Parms:  Variable
  1991.  
  1992.       Notes:  Variables may be used in CASE statements. CASE tags not
  1993.               terminated by a BREAK will "fall" through to the next
  1994.               statement line in the script.
  1995.  
  1996.               The DCASE tag is selected if all previous CASE statements
  1997.               fail.
  1998.  
  1999.  
  2000.     Example:  FIELDS
  2001.                 Sel  _  C
  2002.               FIELDS
  2003.               ;
  2004.               :SelMenu
  2005.                 TEXT   "------------------------------------------------"
  2006.                 TEXT   "  Order Menu"
  2007.                 TEXT   "------------------------------------------------"
  2008.                 TEXT   " 1. XT             9. Exit"
  2009.                 TEXT   " 2. 286"
  2010.                 TEXT   " 3. 386"
  2011.                 TEXT   " 4. 486"
  2012.                 TEXT   ""
  2013.                 PROMPT "Selection: " Sel
  2014.                 SWITCH  Sel
  2015.                   CASE "1"
  2016.                     TEXT "You entered 1"
  2017.                     BREAK
  2018.                   CASE "2"
  2019.                     TEXT "You entered 2"
  2020.                     BREAK
  2021.                   CASE "3"
  2022.                     TEXT "You entered 3"
  2023.                     BREAK
  2024.                   CASE "4"
  2025.                     TEXT "You entered 4"
  2026.                     BREAK
  2027.                   CASE "9"
  2028.                     GOTO  EndJob
  2029.                   DCASE
  2030.                     TEXT   " Invalid Selection. Please try again."
  2031.                     BREAK
  2032.                 SWITCH  END
  2033.                 GOTO SelMenu
  2034.  
  2035.                 :EndJob
  2036.                  TEXT "You entered 9"
  2037.                  EXIT
  2038.  
  2039.  
  2040.   --------------------------------------------------------------------------
  2041.   TRIM <var> [<var>...<var>]
  2042.   --------------------------------------------------------------------------
  2043.  
  2044.        Desc:  Trim leading and trailing spaces from var(s).
  2045.  
  2046.       Parms:  var       The variable to trim.
  2047.  
  2048.       Notes:  none
  2049.  
  2050.     Example:  TRIM name addr city state zip     ;strip these var's
  2051.  
  2052.  
  2053.   --------------------------------------------------------------------------
  2054.   TRIML <var> [<var>...<var>]
  2055.   --------------------------------------------------------------------------
  2056.  
  2057.        Desc:  Trim leading spaces from var(s).
  2058.  
  2059.       Parms:  var       The variable to trim.
  2060.  
  2061.       Notes:  none
  2062.  
  2063.     Example:  TRIML name addr city state zip    ;left strip these var's
  2064.  
  2065.  
  2066.   --------------------------------------------------------------------------
  2067.   TRIMR <var> [<var>...<var>]
  2068.   --------------------------------------------------------------------------
  2069.  
  2070.        Desc:  Trim trailing spaces from var(s).
  2071.  
  2072.       Parms:  var       The variable to trim.
  2073.  
  2074.       Notes:  none
  2075.  
  2076.     Example:  TRIMR name addr city state zip    ;right strip these var's
  2077.  
  2078.  
  2079.   --------------------------------------------------------------------------
  2080.   UCASE <var>
  2081.   --------------------------------------------------------------------------
  2082.  
  2083.        Desc:  Converts all characters in "var" to upper case.
  2084.  
  2085.       Parms:  var       The variable to modify.
  2086.  
  2087.       Notes:  none
  2088.  
  2089.     Example:  UCASE Occupation
  2090.  
  2091.  
  2092.   --------------------------------------------------------------------------
  2093.   UPDATE_USER_RECORD
  2094.   --------------------------------------------------------------------------
  2095.  
  2096.        Desc:  Update the user record on exit from the door. If this command
  2097.               is not executed, the user record is *not* updated.
  2098.  
  2099.       Parms:  none
  2100.  
  2101.       Notes:  none
  2102.  
  2103.     Example:  INCREASE 1 10
  2104.               UPDATE_USER_RECORD
  2105.  
  2106.  
  2107.   --------------------------------------------------------------------------
  2108.   VALIDCREDITCARD <card#> <var>
  2109.   --------------------------------------------------------------------------
  2110.  
  2111.        Desc:  Validates a credit card number.
  2112.  
  2113.       Parms:  card#     The variable (or literal string) that contains the
  2114.                         credit card number to validate.
  2115.  
  2116.               var       The variable name used to store the result of the
  2117.                         validation. If the card is a valid number, 'var'
  2118.                         will be set to the first char of the card #. If the
  2119.                         card number if not valid, 'var' will be set to a
  2120.                         null string ("").
  2121.  
  2122.       Notes:  The type of card being processed can be determined by testing
  2123.               the first digit of the credit card number (each card vendor
  2124.               uses a unique first digit).
  2125.  
  2126.     Example:  PROMPT "Enter Card Number: " CardNum
  2127.               VALIDCREDITCARD CardNum CardResult
  2128.               SWITCH CardResult
  2129.                 CASE "3"
  2130.                   SET CardType "AMEX"
  2131.                   BREAK
  2132.                 CASE "4"
  2133.                   SET CardType "VISA"
  2134.                   BREAK
  2135.                 CASE "5"
  2136.                   SET CardType "MC"
  2137.                   BREAK
  2138.                 CASE "6"
  2139.                   SET CardType "DISC"
  2140.                   BREAK
  2141.                 DCASE
  2142.                   TEXT   " Invalid Selection. Please try again."
  2143.                   GOTO BadNumber
  2144.               SWITCH  END
  2145.   
  2146.  
  2147.   --------------------------------------------------------------------------
  2148.   WRITE <hdl> <format>
  2149.   --------------------------------------------------------------------------
  2150.  
  2151.        Desc:  Write a data record to the file specified by 'hdl', using the
  2152.               variables contained in 'format'. The record is written using
  2153.               a key as defined in 'format'.
  2154.  
  2155.       Parms:  hdl       This is the handle number, and must be a number
  2156.                         from 0 to 9.
  2157.               format    The name of the FORMAT for this file.
  2158.  
  2159.       Notes:  If the key currently exist in the data file, it will be
  2160.               updated with the new record (from memory). If it does not
  2161.               exist, it will be added to the data file.
  2162.  
  2163.               The macro "@file_stat@" contains the result of the last data
  2164.               file operation performed by PCBSuperScript. All data file
  2165.               functions load this macro with "*OK*" if no error occurred.
  2166.               This macro should be checked after a data file function to
  2167.               insure proper script operation. See ORDER.DEF for examples of
  2168.               these commands.
  2169.  
  2170.     Example:  OPEN  0 J:\PCB\SS\DATA.DAT
  2171.               READ  0 DatFmt
  2172.               SET   UFlag 1
  2173.               WRITE 0 DatFmt
  2174.               CLOSE 0
  2175.  
  2176.  
  2177. Supported PCBoard Macros and Environment Variables
  2178. -----------------------------------------------------------------------------
  2179.  
  2180.   The following PCBoard Macros are available:
  2181.  
  2182.     Caller Information
  2183.     ------------------
  2184.       @bps@             Connect Speed
  2185.       @city@            City
  2186.       @comment1@        Comment line 1
  2187.       @comment2@        Comment line 2
  2188.       @confnum@         Current Conference Number
  2189.       @dataphone@       Business/Data Phone
  2190.       @daybytes@        Daily D/L Bytes
  2191.       @dlbytes@         Total D/L Bytes
  2192.       @dlfiles@         Total D/L Files
  2193.       @expertmode@      Expert mode
  2194.       @expdate@         Expiration Date
  2195.       @file_stat@       Status of last PCBSuperScript file command
  2196.       @first@           First Name (first letter capitalized)
  2197.       @firstu@          First Name (all caps)
  2198.       @graphics@        0 = not in graphics mode, 1 = in graphics mode
  2199.       @homephone@       Home/Voice Phone
  2200.       @lastdateon@      Last Date On
  2201.       @lasttimeon@      Last Time On
  2202.       @minleft@         Minutes Left
  2203.       @msgleft@         Number of Messages Written
  2204.       @msgread@         Number of Messages Read
  2205.       @numtimeson@      Number of Times On
  2206.       @pagelen@         Page length setting
  2207.       @password@        User password
  2208.       @port@            Port id
  2209.       @proltr@          Default Protocol Letter
  2210.       @security@        Security Level
  2211.       @shell_stat@      Status of last PCBSuperScript shell command
  2212.       @timelimit@       Time Limit
  2213.       @timeused@        Time Used
  2214.       @totaltime@       Total Time Used so far Today
  2215.       @upbytes@         Total U/L Bytes
  2216.       @upfiles@         Total U/L Files
  2217.       @user@            Full Name (all caps)
  2218.  
  2219.     System Information
  2220.     ------------------
  2221.       @boardname@       Name of the BBS you are on
  2222.       @event@           Event Time
  2223.       @node@            Node Number
  2224.       @sysdate@         Current Date
  2225.       @systime@         Current Time
  2226.       @ss_version@      PCBSuperScript version number
  2227.  
  2228.  
  2229.     Display Controls
  2230.     ----------------
  2231.       @automore@        Treats "more?" prompts in a file like @pause@
  2232.  
  2233.       @beep@            Sends a CTRL-G (ascii BELL character) to the
  2234.                         caller but is not heard on the local machine
  2235.                         unless the Caller Alarm is turned on
  2236.  
  2237.       @cls@             Clear the entire screen
  2238.  
  2239.       @clreol@          Clear from the cursor to the end of the line
  2240.  
  2241.       @more@            Cause a "more?" prompt to be displayed
  2242.  
  2243.       @pause@           Displays a "more?" prompt with a 10 second auto
  2244.                         return if the caller doesn't answer it first
  2245.  
  2246.       @poff@            Turns Prompts OFF (disables "more?" prompt)
  2247.  
  2248.       @pon@             Turns Prompts ON  (enables  "more?" prompt)
  2249.  
  2250.       @qoff@            Disables CTRL-X/CTRL-K checking (display abort)
  2251.  
  2252.       @qon@             Enables CTRL-X/CTRL-K checking  (display abort)
  2253.  
  2254.       @wait@            Display a "press enter to continue" prompt
  2255.  
  2256.       @X##              Normal PCBoard color control code.
  2257.  
  2258.  
  2259.  
  2260.     Environment variables are variables that are currently defined in your
  2261.   DOS environment. Environmental variables are accessed in the following
  2262.   manner:
  2263.  
  2264.       @%name      Access environment variable "name".
  2265.  
  2266.  
  2267.     Whenever a PCBoard Macro or Environment variable is referenced in a
  2268.   script, the current value of the variable is substituted for the variable
  2269.   name.
  2270.  
  2271.  
  2272.  
  2273.